package com.project.mapper;

import com.project.bean.UserBean;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface IUserMapper {

    /**
     * 查询所有用户信息
     * @return 用户信息列表，包括用户编号、用户名、密码、真实姓名和等级
     */
    @Select("SELECT * FROM t_user")
    List<UserBean> findAllUsers();

    /**
     * 添加用户
     * @return 如果用户名不存在，则添加用户并返回true，否则返回false
     */
    @Insert("INSERT INTO t_user (u_username,u_pwd,u_name,u_grade) SELECT " +
            "#{userName},#{pwd},#{name},#{grade} WHERE NOT EXISTS (SELECT * FROM t_user WHERE u_username = #{userName});")
    boolean addUser(UserBean user);

    /**
     * 删除用户
     * @param userId 用户id
     */
    @Delete("DELETE FROM t_user WHERE pk_id = #{id}")
    void deleteUser(Integer userId);

    /**
     * 按ID查询用户信息
     * @param userId 用户id
     * @return 用户对象，包括用户编号、用户名、真实姓名和等级
     */
    UserBean findUserById(Integer userId);

    /**
     * 修改用户等级
     * @param userId 用户id
     * @param newGrade 用户新等级
     */
    @Update("UPDATE t_user set u_grade=#{newGrade} WHERE pk_id=#{userId}")
    void updateUserGrade(@Param("userId") Integer userId, @Param("newGrade") String newGrade);

    /*根据用户id修改用户密码
     * */
    @Update("update t_user set u_username=#{userId} where u_pwd=#{newPwd}")
    void updatePwd(@Param("userId") Integer id,@Param("newPwd") String newPwd);


}
